Исторически у C++ не было единого способа взаимодействия с аппаратными сервисами, что вынуждало разработчиков работать в «платформенных изоляторах» где кодовые базы были фрагментированы из-за специфичных для ОС интерфейсов, таких как Win32 или POSIX. Этот слайд отмечает переход к современной эре, когда стандартная библиотека C++ служит универсальным уровнем абстракции.
1. Конец #ifdef-спагетти
До стандартизации простые задачи, такие как создание потока или навигация по каталогу, требовали использования макросов препроцессора для обработки различных системных заголовков (например, <windows.h> или <pthread.h>). Это привело к увеличению кода и его трудности в поддержке.
2. Парадигма сдвига в С++11
Стандарт начал восстанавливать контроль над системными ресурсами. В частности, C++11 добавил высокий уровень функций параллелизма, включая std::thread, std::mutex и std::future, что стандартизировало отношение языка к процессору.
3. Отделение логики поставщика
Переходя за рамки платформенно-зависимого кода, стандартная библиотека обеспечивает гарантию «написано один раз, скомпилировано везде». Нагрузка по поддержке платформы переходит от разработчика к поставщику компилятора.